hsweb的系列学习之FreeMarker模板引擎与动态页面静态化与后台结合的一些处理逻辑 二

hsweb的系列学习之FreeMarker模板引擎与动态页面静态化与后台结合的一些处理逻辑 二

FreeMarker基础补强请参考:https://github.com/muyinchen/migo-freemaker

首先是对登录逻辑的处理:

图1

通过一个ajax来访问,返回的数据信息表示成功就会访问到图17的逻辑


图2

图3是对图2的登录逻辑的展示


图3

登录之后跳转到index.ftl,在此请看红色标记:


图4

通过macro来自定义一个指令api,定义内容见图5


图5

通过上述的定义逻辑会访问到UserModuleController.class里的相应处理逻辑,如下图所示:


图6

index页面js处理逻辑

对返回的数据进行展示:


图7

onNodeClick事件的处理:

在此举个小例子:

1
2
3
4
5
6
7
8
9
10
<ul id="tree1" class="mini-tree" url="../data/tree.txt" style="width:300px;padding:5px;"
showTreeIcon="true" textField="text" idField="id" value="base" expandOnNodeClick="true"
onNodeClick="onNodeClick"
>
</ul>
function onNodeClick(){
var tree=mini.get("tree1")
node=tree.getSelectedNode()
alert(node.text);
}


图8

乱入一张,防止有些小伙伴迷糊,通过配置文件查看可以得知,返回的地址的后缀名统一为.ftl


图9

图8Request.BASH_PATH的解读

同样,先通过macro来自定义一个指令basePath,注意需要后端传入的模型视图(ModelAndView )中的参数名称为absPath,然后看图10

箭头所指:


图10

图11的逻辑就是先通过模型视图找到admin下的login.ftl,填完相应信息再提交给图3的逻辑处理,因为就近原则的关系,hsdemo已经在index.ftl有此逻辑了,可以在自己的项目中调用此模板来处理的


图11


图12

通过图12可以看到在此对地址进行转换

对其他访问逻辑的处理


图13

以点击表单管理为例:


图14
结合图15:

第一个访问连接http://127.0.0.1:8080/admin/form/list.html?_t=769104&_winid=w7605,因为已经经过处理并放入到模型视图(ModelAndView )中,所以会直接访问到下图的list.ftl


图15
图15的红色标记可以看出,访问的链接地址将要跳转到:"http://127.0.0.1:8080/form/~latest",最后,结合图14,访问相应逻辑

最后再补两张图的,方便理解:


图16


图17

您的支持将鼓励我继续创作!